#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;


int main(){
	int m,n;
	cin>>m>>n;
	int a[m][n];
	int dp[m][n][m][n];
	memset(dp,0,sizeof(dp));
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			cin>>a[i][j];
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			for(int p=0;p<i;p++)
				for(int q=0;q<j;q++){
					dp[i][j][p][q] = max((i!=0?max(p!=0?dp[i-1][j][p-1][q]:0,q!=0?dp[i-1][j][p][q-1]:0):0),(j!=0?max(p!=0?dp[i][j-1][p-1][q]:0,q!=0?dp[i][j-1][p][q-1]:0):0))+a[i][j]+a[p][q];
				}
	int ans;
	ans = max(dp[m-2][n-1][m-1][n-2],dp[m-1][n-2][m-2][n-1]);
	cout<<ans;
	return 0;
}
